package br.com.vendaext.gerencial.apresentacao;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.vendaext.gerencial.entidades.Usuario;
import br.com.vendaext.gerencial.integracao.UsuarioDAO;

@Named
@Component
@Scope("session")
public class LoginHome extends GenericHome<Usuario>{
	
	Usuario usuario = new Usuario();
	
	@Autowired
	MenuHome menu;
	
	UsuarioDAO dao;
	public String login(){
		FacesContext context = FacesContext.getCurrentInstance();
		if (context.getExternalContext().getSessionMap().get("usuarioLogado")!=null)
			return "login.ok";
		
		Usuario usuarioLogado = dao.login(usuario);
		if (usuarioLogado!=null)
		{
			context = FacesContext.getCurrentInstance();
			context.getExternalContext().getSessionMap().put("usuarioLogado", usuarioLogado);
			menu.carregarMenu();
			return "login.ok";
		}
		else
		{
			context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage("Usuário não cadastrado"));
			return "login.falhou";
		}
	}
	public String logout(){
		FacesContext context = FacesContext.getCurrentInstance();
		context.getExternalContext().getSessionMap().put("usuarioLogado", null);
		return "logout.ok";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public UsuarioDAO getDao() {
		return dao;
	}
	@Autowired
	public void setDao(UsuarioDAO dao) {
		this.dao = dao;
	}
}

